package br.com.damazzy.util {
	
	import mx.formatters.NumberFormatter;
	
	public class FormataNumero {
		
		private static var formataNumero:NumberFormatter = new NumberFormatter();
		
		public static const EXTENSO_MASCULINO:int = 0;
		public static const EXTENSO_FEMININO:int = 1;
		
		public static function formata(num:Number, casasDecimais:int=2, agruparDigitos:Boolean=true, arredondamento:String="nearest"):String {
			formataNumero.precision = casasDecimais;
			formataNumero.rounding = arredondamento;
			formataNumero.decimalSeparatorTo = ",";
			
			if(agruparDigitos){
				formataNumero.thousandsSeparatorTo = ".";
			}else{
				formataNumero.thousandsSeparatorTo = "";
			}
			
			var retorno:String = formataNumero.format(num);
			
			if(retorno.substr(0, 1) == ","){
				retorno = ("0" + retorno);
			}
			
			return retorno;
		}
		
		public static function formataParaCima(num:Number, casasDecimais:int=2, agruparDigitos:Boolean=true):String {
			formataNumero.precision = casasDecimais;
			formataNumero.rounding = "up";
			formataNumero.decimalSeparatorTo = ",";
			formataNumero.decimalSeparatorFrom = ".";
			
			if(agruparDigitos)
				formataNumero.thousandsSeparatorTo = ".";
			else
				formataNumero.thousandsSeparatorTo = "";
			
			return formataNumero.format(num);
		}	
			
		public static function extrairNumeros(str:String):String {
			var arr:Array = str.split("");
			var strRetorno:String = "";
			
			for(var i:int = 0; i < arr.length; i++) {
				if(Number(arr[i]).toString() != "NaN")
					strRetorno += arr[i].toString();
			}
			
			return strRetorno;
		}
		
		public static function extenso(str:int, par:int):String
		{
			var val:String;
			
			switch(str)
			{
				case 1:
					val = (par == 0)?"um":"uma";	
					break;
				case 2:
					val = (par == 0)?"dois":"duas";
					break;
				case 3:
					val = "três";		
					break;
				case 4:
					val = "quatro";		
					break;
				case 5:
					val = "cinco";		
					break;
				case 6:
					val = "seis";		
					break;
				case 7:
					val = "sete";		
					break;
				case 8:
					val = "oito";		
					break;
				case 9:
					val = "nove";		
					break;																					
				default:
					val = "";
					break;																						
			}	
			
			return val;
		}
	}
}